package cn.community.system.domain;

import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

// 活动
@Getter
@Setter
public class Activity {

    private Long id;
    private String title;   // 活动名称
    private String sponsor;  // （发布者）主办方
    private Long sponsorId;  // 主办方id
    private String site;  // 活动地点
    private Integer person;  // 所需人数
    private Integer nowperson;  // 报名人数

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;      // 活动开始时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;        // 活动结束时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyStartTime;   // 报名开始时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyEndTime;      // 报名截止时间
    private Double allTime;       // 活动总时长（单位：小时）

    private String dutyName;   // 负责人
    private String mobile;      // 联系方式
    private String synopsis;    // 活动简介
    private String details;     // 详细内容

    public static final int NEED_NO = 0;   // 不需要
    public static final int NEED_YES = 1;   // 需要
    public static final int PASS_YES = 2;   // 审核通过后发布
    public static final int PASS_NO = 3;   // 审核不通过,拒绝
    private Integer isAgree = NEED_NO;  // 是否需要管理员同意（0=不需要 1=需要，2=审核通过后发布，3=审核不通过、拒绝 由超管进行审核通过）

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;        // 发布时间
    private String imgUrl;          // 图片路径

    public String getJsonString(){
        Map<String, Object> map = new HashMap<>();
        map.put("id",id);
        map.put("title",title);
        map.put("sponsor",sponsor);
        map.put("sponsorId",sponsorId);
        map.put("site",site);
        map.put("person",person);
        map.put("nowperson",nowperson);
        map.put("startTime",startTime);
        map.put("endTime",endTime);
        map.put("applyStartTime",applyStartTime);
        map.put("applyEndTime",applyEndTime);
        map.put("allTime",allTime);
        map.put("dutyName",dutyName);
        map.put("mobile",mobile);
        map.put("synopsis",synopsis);
        map.put("details",details);
        map.put("isAgree",isAgree);
        map.put("createTime",createTime);
        map.put("imgUrl",imgUrl);
        return JSON.toJSONString(map);
    }
}
